home *** CD-ROM | disk | FTP | other *** search
- VERSION 5.00
- Begin VB.Form Form1
- AutoRedraw = -1 'True
- Caption = "Form1"
- ClientHeight = 3195
- ClientLeft = 60
- ClientTop = 345
- ClientWidth = 4680
- LinkTopic = "Form1"
- ScaleHeight = 3195
- ScaleWidth = 4680
- StartUpPosition = 3 'Windows Default
- Begin VB.Label Label1
- Height = 255
- Left = 120
- TabIndex = 0
- Top = 2880
- Width = 4455
- End
- Attribute VB_Name = "Form1"
- Attribute VB_GlobalNameSpace = False
- Attribute VB_Creatable = False
- Attribute VB_PredeclaredId = True
- Attribute VB_Exposed = False
- Option Explicit
- Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
- Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
- Private Type POINTAPI
- X As Long
- Y As Long
- End Type
- Private Const WINDING = 2
- Private Declare Function PtInRegion Lib "gdi32" (ByVal hRgn As Long, ByVal X As Long, ByVal Y As Long) As Long
- Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
- Private Points(1 To 25) As POINTAPI
- Private Sub Form_Load()
- ScaleMode = vbPixels
- ' Set some points.
- Points(1).X = 75
- Points(1).Y = 53
- Points(2).X = 109
- Points(2).Y = 72
- Points(3).X = 138
- Points(3).Y = 52
- Points(4).X = 141
- Points(4).Y = 79
- Points(5).X = 213
- Points(5).Y = 61
- Points(6).X = 251
- Points(6).Y = 100
- Points(7).X = 199
- Points(7).Y = 102
- Points(8).X = 243
- Points(8).Y = 127
- Points(9).X = 224
- Points(9).Y = 142
- Points(10).X = 178
- Points(10).Y = 131
- Points(11).X = 178
- Points(11).Y = 168
- Points(12).X = 141
- Points(12).Y = 168
- Points(13).X = 147
- Points(13).Y = 132
- Points(14).X = 102
- Points(14).Y = 138
- Points(15).X = 104
- Points(15).Y = 183
- Points(16).X = 62
- Points(16).Y = 173
- Points(17).X = 73
- Points(17).Y = 119
- Points(18).X = 19
- Points(18).Y = 113
- Points(19).X = 32
- Points(19).Y = 91
- Points(20).X = 100
- Points(20).Y = 98
- Points(21).X = 100
- Points(21).Y = 76
- Points(22).X = 60
- Points(22).Y = 71
- Points(23).X = 18
- Points(23).Y = 63
- Points(24).X = 31
- Points(24).Y = 38
- Points(25).X = 39
- Points(25).Y = 60
- ' Draw the polygon.
- Polygon hdc, Points(1), 25
- End Sub
- ' See if the point is inside the polygon.
- Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
- Dim rgn As Long
- rgn = CreatePolygonRgn(Points(1), 25, WINDING)
- If PtInRegion(rgn, X, Y) Then
- Label1.Caption = "In the polygon"
- Else
- Label1.Caption = "Outside the polygon"
- End If
- DeleteObject rgn
- End Sub
-